/**
	ETFRoot project, Anyang Normal University && IMP-CAS

	\class ETFVMERawEvent
	\brief class to hold the raw data of a VME event, keeping its original data
	arrangement as in the VME crate. Note that this is a abstract base class
	\author SUN Yazhou, asia.rabbit
	\since 2021-10-06
	\date 2022-04-27
	\attention
	changelog
	<table>
	<tr>  <th>Date         <th>Author      <th>Description                   </tr>
	<tr>  <td>2021-10-06   <td>Asia Sun    <td>file created                  </tr>
	</table>

	\copyright Copyright (c) 2022 Anyang Normal U. && IMP-CAS with LGPLv3 LICENSE
*/

#ifndef ETFVMERawEvent_h
#define ETFVMERawEvent_h

#include <TNamed.h>

class ETFVMERawEvent : public TNamed{
public:
	ETFVMERawEvent();
	ETFVMERawEvent(const ETFVMERawEvent &evt);
	virtual ~ETFVMERawEvent();

	virtual void Reset() = 0;
	virtual void Initialize(){}

	virtual double dE0() const = 0;
	virtual double dE1() const = 0;
	virtual int &adc(int i, int j = 0) = 0;
	virtual int &qdc(int i, int j = 0) = 0;
	virtual int adc(int i, int j = 0) const{ return adc(i, j); }
	virtual int qdc(int i, int j = 0) const{ return qdc(i, j); }
	virtual void Print() const{}

	ClassDef(ETFVMERawEvent, 1); ///< original VME daq data format
};

#endif
